package com.ruoyi.framework.web.service;

import org.springframework.stereotype.Component;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.faceid.v20180301.FaceidClient;
import com.tencentcloudapi.faceid.v20180301.models.PhoneVerificationRequest;
import com.tencentcloudapi.faceid.v20180301.models.PhoneVerificationResponse;

@Component
public class VerificationService {
	
	/**
	 * 手机号实名认证
	 * @param user
	 * @return
	 */
	public Boolean phoneVerification(SysUser user){
		try{
            // 实例化一个认证对象，入参需要传入腾讯云账户secretId，secretKey,此处还需注意密钥对的保密
            // 密钥可前往https://console.cloud.tencent.com/cam/capi网站进行获取
            Credential cred = new Credential("AKIDyqX3WorkQvDIhrpZ4KK4cv8C9vUr04xg", "EGF6pOo23qR3WlFYgdOvJWVL0UmvshOv");
            // 实例化一个http选项，可选的，没有特殊需求可以跳过
            HttpProfile httpProfile = new HttpProfile();
            httpProfile.setEndpoint("faceid.tencentcloudapi.com");
            // 实例化一个client选项，可选的，没有特殊需求可以跳过
            ClientProfile clientProfile = new ClientProfile();
            clientProfile.setHttpProfile(httpProfile);
            // 实例化要请求产品的client对象,clientProfile是可选的
            FaceidClient client = new FaceidClient(cred, "", clientProfile);
            // 实例化一个请求对象,每个接口都会对应一个request对象
            PhoneVerificationRequest req = new PhoneVerificationRequest();
            req.setIdCard(user.getCardNo());
            req.setName(user.getCardName());
            req.setPhone(user.getPhonenumber());
            // 返回的resp是一个PhoneVerificationCMCCResponse的实例，与请求对象对应
            PhoneVerificationResponse resp = client.PhoneVerification(req);
            // 输出json格式的字符串回包
            System.out.println(PhoneVerificationResponse.toJsonString(resp));
            if("0".equals(resp.getResult())){
            	return true;
            }else{
            	return false;
            }
        } catch (TencentCloudSDKException e) {
            e.printStackTrace();
            return false;
        }
	}
	
}
